#!/usr/bin/env node
let fs = require("fs")
let path = require("path")
let config = require('./config')
// 搜索console并替换
function searchConsole(text){
    // 初始化掉原先commit的方法
    if(text.indexOf("// console.log")!==-1){
        text = text.replace(/\/\/ console.log\(/g,"console.log(")
    }
    if(text.indexOf("//console.log")!==-1){
        text = text.replace(/\/\/console.log\(/g,"console.log(")
    }
    text = text.replace(/console.log\(/g,"// console.log(")
    return text
}
// 搜索文件夹下的所有文件
function searchFile(filepath){
    let fileGroup = fs.readdirSync(path.resolve(filepath))
    return fileGroup
}
// 判断是否存在这类文件
function isExistFile(fileString){
    let fileArr = fileString.split(".")
    if(config.useFileSuffix.indexOf("."+fileArr[fileArr.length-1])!==-1){
        return true
    }else{
        return false
    }
}
// commit
function commit(filepath){
    // 设置使用的文件后缀字段
    let fileGroup = searchFile(filepath)
    fileGroup.map((item,i)=>{
        if(fs.statSync(path.resolve(filepath+"/"+item)).isDirectory()){
            commit(filepath+"/"+item)
        }else{
            if(isExistFile(item)){
                console.log("正在更改文件 "+item)
                let file = fs.readFileSync(path.resolve(filepath+"/"+item))
                let getConsole = searchConsole(file.toString())
                fs.writeFileSync(path.resolve(filepath+"/"+item),getConsole)
                console.log("更改完成")
            }else{
                console.log("文件"+item+"不在commit列表中，自动过滤")
            }
        }

    })
}
// 主程序
function app(){
    let filepath = process.argv.splice(2)[0]
    if(!filepath){
        console.error("Error:请加入filePath 正确用法 npm start [文件夹相对本代码路径]")
        return ;
    }
    console.log("需要更改的文件夹目录是 "+path.resolve(filepath)+" 3秒后开始更改文件")
    setTimeout(()=>{
        commit(filepath)
    },3000)
}

app()